package com.zbbt.sportslottery.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.text.TextUtils;

/**
 * 数据校验工具类
 * @author LiZhimin
 *
 */
public class DataValidator {

	public static boolean baseCheck(String str, String rex) {
		Pattern pattern = Pattern.compile(rex);
		Matcher matcher = pattern.matcher(str);
		return matcher.matches();
	}

	/**
	 * 检测手机号格式是否正确
	 * 
	 * @param phoneNumber
	 *            手机号码
	 * @return
	 */
	public static boolean isMobile(String str) {
		return baseCheck(str, "^1[3,4,5,7,8]\\d{9}$");
	}

	/**
	 * 
	 * @MethodName:checkPassword
	 * @Description: 校验密码：必须为 6至20位字母和数字组合
	 * @author：LiZhimin
	 * @date：2014-7-4 上午11:10:40
	 * @param str
	 * @return boolean
	 */
	public static boolean checkPassword(String str) {
		return baseCheck(str, "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$");
	}

	/**
	 * 
	 * @MethodName:isChinese
	 * @Description: 是否
	 * @author：LiZhimin
	 * @date：2014-7-10 下午4:02:54
	 * @param str
	 * @return boolean
	 */
	public static boolean isChinese(String str) {
		return baseCheck(str, "^[\u4e00-\u9fa5]*$");
	}

	/***
	 * 
	 * @MethodName:checkText
	 * @Description: 英文数字中文
	 * @author：LiZhimin
	 * @date：2014-7-18 下午3:32:22
	 * @param str
	 * @return boolean
	 */
	public static boolean checkText(String str) {
		return baseCheck(str, "[a-zA-Z0-9\u4e00-\u9fa5]+");
	}

	/**
	 * 
	 * @MethodName:isZeroStr
	 * @Description: 判断字符串是否全部是0组成
	 * @author：LiZhimin
	 * @date：2014-5-24 下午7:34:31
	 * @param str
	 * @param flag
	 *            true至少1位 false至少0位此时""也匹配
	 * @return boolean
	 */
	public static boolean isZeroStr(String str, boolean flag) {
		if (flag) {
			return baseCheck(str, "[0]+");
		} else {
			return baseCheck(str, "[0]*");
		}
	}

	/**
	 * 
	 * @MethodName:isMoney
	 * @Description: 判断金额是格式是否正确
	 * @author：LiZhimin
	 * @date：2014-5-24 下午8:00:08
	 * @param str
	 * @return boolean
	 */
	public static boolean isMoney(String str) {
		return baseCheck(str, "^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$");
	}
	
	public static boolean isNetError(String str) {
		if(!TextUtils.isEmpty(str)&&str.contains(".")){
			str=str.substring(0, str.indexOf("."));
			return baseCheck(str, "[a-zA-Z]+");
		}
		return false;
	}
	
}